'\" te
.\" Copyright 2014 Nexenta Systems, Inc.  All Rights Reserved.
.\"  Copyright 1989 AT&T  Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH RPC_SVC_ERR 3NSL "Nov 24, 2014"
.SH NAME
rpc_svc_err, svcerr_auth, svcerr_decode, svcerr_noproc, svcerr_noprog,
svcerr_progvers, svcerr_systemerr, svcerr_weakauth \- library routines for
server side remote procedure call errors
.SH DESCRIPTION
.LP
These routines are part of the \fBRPC\fR library which allows C language
programs to make procedure calls on other machines across the network.
.sp
.LP
These routines can be called by the server side dispatch function if there is
any error in the transaction with the client.
.SS "Routines"
.LP
See \fBrpc\fR(3NSL) for the definition of the \fBSVCXPRT\fR data structure.
.sp
.in +2
.nf
\fB#include <rpc/rpc.h>\fR
.fi
.in -2
.sp

.sp
.ne 2
.na
\fBvoid svcerr_auth(const SVCXPRT *\fIxprt\fR, const enum auth_stat
\fIwhy\fR);\fR
.ad
.sp .6
.RS 4n
Called by a service dispatch routine that refuses to perform a remote procedure
call due to an authentication error.
.RE

.sp
.ne 2
.na
\fBvoid svcerr_decode(const SVCXPRT *\fIxprt\fR);\fR
.ad
.sp .6
.RS 4n
Called by a service dispatch routine that cannot successfully decode the remote
parameters (see \fBsvc_getargs()\fR in \fBrpc_svc_calls\fR(3NSL)).
.RE

.sp
.ne 2
.na
\fBvoid svcerr_noproc(const SVCXPRT *\fIxprt\fR);\fR
.ad
.sp .6
.RS 4n
Called by a service dispatch routine that does not implement the procedure
number that the caller requests.
.RE

.sp
.ne 2
.na
\fBvoid svcerr_noprog(const SVCXPRT *\fIxprt\fR);\fR
.ad
.sp .6
.RS 4n
Called when the desired program is not registered with the \fBRPC\fR package.
Service implementors usually do not need this routine.
.RE

.sp
.ne 2
.na
\fBvoid svcerr_progvers(const SVCXPRT *\fIxprt\fR, const rpcvers_t
\fIlow_vers\fR, const rpcvers_t \fIhigh_vers\fR);\fR
.ad
.sp .6
.RS 4n
Called when the desired version of a program is not registered with the
\fBRPC\fR package. \fIlow_vers\fR is the lowest version number, and
\fIhigh_vers\fR is the highest version number. Service implementors usually do
not need this routine.
.RE

.sp
.ne 2
.na
\fBvoid svcerr_systemerr(const SVCXPRT *\fIxprt\fR);\fR
.ad
.sp .6
.RS 4n
Called by a service dispatch routine when it detects a system error not covered
by any particular protocol. For example, if a service can no longer allocate
storage, it may call this routine.
.RE

.sp
.ne 2
.na
\fBvoid svcerr_weakauth(const SVCXPRT *\fIxprt\fR);\fR
.ad
.sp .6
.RS 4n
Called by a service dispatch routine that refuses to perform a remote procedure
call due to insufficient (but correct) authentication parameters. The routine
calls \fBsvcerr_auth(xprt, AUTH_TOOWEAK)\fR.
.RE

.SH ATTRIBUTES
.LP
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
MT-Level	MT-Safe
.TE

.SH SEE ALSO
.LP
.BR rpc (3NSL),
.BR rpc_svc_calls (3NSL),
.BR rpc_svc_create (3NSL),
.BR rpc_svc_reg (3NSL),
.BR attributes (7)
